/**
 JS对象 的静态方法:
  Object.getPrototypeOf(obj): 
    获取指定对象的原型（对象），等同于 obj.__proto__ === 构造函数.prototype
  Object.setPrototypeOf(obj, prototype)
    设置指定的对象的原型（对象），等同于 obj.__proto__ = prototype
 */
const obj = {
  name: '李沁',
  feature: ['气质', '美丽']
}
// 获取obj对象的原型对象
// console.log(obj.__proto__)
// console.log(Object.getPrototypeOf(obj))
// console.log(Object.getPrototypeOf(obj) === obj.__proto__)// true
// console.log(Object.prototype === obj.__proto__)// true

// 设置obj对象的原型对象 为 字符串对象
// console.log(obj)
// Object.setPrototypeOf(obj, new String())
// obj.__proto__ = new String()
// console.log(obj)
// 获取
// console.log(Object.getPrototypeOf(obj))

// console.log(Object.prototype.__proto__)
// 如果不想让obj对象的原型对象指向任何一个对象，可以设置其原型为null
// Object.setPrototypeOf(obj, null)
// obj.__proto__ = null
// console.log(obj)
// console.log(Object.getPrototypeOf(obj))// null



// 最有价值球员Mvp构造函数
function Mvp (name, team) {
  this.name = name
  this.team = team
}

const mvp = new Mvp('库里', '勇士')
// console.log(mvp)
// 设置mvp对象的原型 为 数组对象
// Object.setPrototypeOf(mvp, new Array())
// console.log(mvp)
// console.log(Object.getPrototypeOf(mvp))// []
// 设置mvp对象的原型 不指向任何一个对象
Object.setPrototypeOf(mvp, null)
console.log(mvp)
console.log(Object.getPrototypeOf(mvp))// null